package com.zengdada.dml.model.type;

import com.zengdada.dml.model.DmlExtend;
import com.zengdada.dml.model.DmlColumnExtend;

import java.util.Optional;

public class StaticSelect extends DmlExtend {

    public enum SelectType {
        /**
         * 普通查询
         */
        select(1),
        /**
         * 显示查询（只查询能显示的字段）
         */
        selectDisplay(2),
        /**
         * 中文表头 只查询能显示的字段）
         */
        selectChinese(3),
        /**
         * 导出 （只查询能显示的字段,并使用中文表头）
         */
        export(0);
        private int type;

        SelectType(int type) {
            this.type = type;
        }

        public int getType() {
            return type;
        }

        public void setType(int type) {
            this.type = type;
        }
    }

    public StaticSelect() {
        setPageSize(0);
        setMaxPageSize(-1);
    }

    private int type = 1;//类型，指定是不是导出  默认不是


    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

    /**
     * 获取一个值得，表明该查询是否需要包裹
     *
     * @return
     */
    public boolean needWrap() {
        // 检查是否定义动态查询列
        Optional<DmlColumnExtend> col = getColumns().stream().filter(c -> (c.getColumnType() == DmlColumnExtend.SELECT_COLUMN || c.getColumnType() == DmlColumnExtend.ANY_WHERE_COLUMN) && c.hasAttr(DmlColumnExtend.ATTR_QUERYABLE)).findFirst();
        return col.isPresent();
    }
}
